import { createServer } from 'http';
const PORT = process.env.PORT;
// 模拟⽤户数据
const users = [
    { id: 1, name: '张三' },
    { id: 2, name: '李四' },
    { id: 3, name: '王五' }
];
// 创建HTTP服务器实例
const server = createServer((req, res) => {
    // 处理GET请求，路径为/api/users
    if (req.url === '/api/users' && req.method === 'GET') {
        // 设置响应头的内容类型为JSON，编码为UTF-8
        res.setHeader('Content-Type', 'application/json; charset=utf-8');
        // 发送⽤户数据的JSON字符串作为响应
        res.write(JSON.stringify(users));
        // 完成响应
        res.end();
    }
});

const server = createServer((req, res) => {
    if (req.url === '/api/users' && req.method === 'GET') {
        // 处理/api/users的GET请求

    } else if (req.url.match(/\/api\/\users\/([0 - 9]+)/) && req.method === 'GET') {
        // 匹配/api/users/:id路径并处理GET请求
        const id = req.url.split('/')[3];
        const user = users.find(user => user.id == id);
        res.setHeader('Content-Type', 'application/json; charset = utf - 8');
        if (user) {
            // 找到指定ID的⽤户，返回⽤户数据
            res.write(JSON.stringify(user));
        } else {
            // 如果⽤户不存在，返回404错误
            res.statusCode = 404;
            res.write(JSON.stringify({
                message: '⽤户不存在'
            }));
        }
        res.end();
    } else {
        // 处理未定义的API路径，返回404错误

    }
});

const server = createServer((req, res) => {
    logger(req, res, () => {
        if (req.url === '/api/users' && req.method === 'GET') {

        } else if (req.url.match(/\/api\/users\/([0-9]+)/) && req.method === 'GET') {

        } else {

        }
    });
});
server.listen(PORT, () => {
    console.log(`服务器已启动，监听端⼝${PORT}`);
});

const getUsersHandler = (req, res) => {
    res.write(JSON.stringify(users));
    res.end();
};
// 路由处理 GET /api/users/:id
const getUserHandler = (req, res) => {
    const id = req.url.split('/')[3];
    const user = users.find(user => user.id == id);
    if (user) {
        res.write(JSON.stringify(user));
    } else {
        res.statusCode = 404;
        res.write(JSON.stringify({ message: '⽤户不存在' }));
    }
    res.end();
};
// 路由处理 404
const notFoundHandler = (req, res) => {
    res.statusCode = 404;
    res.write(JSON.stringify({
        message: 'API不存在'
    }));
    res.end();
};


const createUserHandler = (req, res) => {
    let body = '';
    // 监听'data'事件，逐块接收请求体的数据
    req.on('data', (chunk) => {
    body += chunk.toString();
    });
    // 数据接收完毕后，触发'end'事件
    req.on('end', () => {
    const user = JSON.parse(body); // 解析请求体中的JSON数据
    users.push(user); // 将解析出的⽤户添加到⽤户列表中
    res.statusCode = 201; // 设置响应状态码为201，表⽰创建成功
    res.write(JSON.stringify(user)); // 返回创建的⽤户数据
    res.end();
    });
    }


// 服务器监听端⼝号，且启动成功后输出提⽰信息
server.listen(PORT, () => {
    console.log(`服务器已启动，监听端⼝${PORT}`);
});